This is an example app to demonstrate how Julia code for DiffEq-type simulations can be compiled for use on the web. This app is built with the following:
StaticCompiler compiles a Julia model to WebAssembly. This uses GPUCompiler which does most of the work. StaticTools helps with this static compilation.
Effect of the actions do not appear immediately - the behaviour evolves with time
Eg. To go from 30 km/hr to 60 km/hr in a car we press the accelerator pedal. We know the card doesn't reach 60 km/hr immedately, it takes a few seconds to accelerate to that velocity.
Mathematical Representation of a physical, biological or information system. In this class, we focus on dynamical systems (mostly in state-space form)
"All models are wrong, but some are useful". Often, a model is an approximation of the real system. The real system might be too complicated to model perfectly. For eg. aerodynamic interactions between the rotor blades of a quadcopter, friction between the tire and ground for a physical robot etc.
The required modelling accuracy depends on the application at hand. Eg. aerodynamic drag can be neglected for low-speed control design for quadcopters
Analysis and design must performed keeping in mind the limitations of the model
Simulation
Controller design
Verfication and Validaton
Diagnostics, predictive maintenance
Here is the model with initial conditions that we'll compile. The important part is using DiffEqGPU to set up an integrator. Because it is designed to run on a GPU, it is natural for static compilation. It doesn't allocate or use features from libjulia.